<?php namespace Home\Controller; 

use Hdphp\Controller\Controller;

//下订单控制器
class PlaceController extends CommonController{
//		变量私有化   只能再这个类里面用
//		地址表
		private $ressModel;
//		订单表
		private $placeModel;
//	构造函数  运行了这个类   一实例化就会运行这个方法
	public function __init(){
//		调用父级的构造函数
		parent::__init();
//		实例化地址表
		$this->ressModel = new \Common\Model\Ress;
//		实例化订单表
		$this->placeModel = new \Common\Model\Place;
	}


	
//订单页显示方法	
	public function index(){
//		获得购物车提交上来的商品
		$post = Q('post.');
		
//		p($post);     //p($_SESSION);
//			定义一个空数组/
			$goods = array();
		if($_POST == null && $_SESSION == null){
	//			循环提交过来的商品id
			foreach ((array)$post['sid'] as $v) {
	//			再session里面找到那些商品     因为那些商品是存再session里面的
				$goods[] = $_SESSION['cart']['goods'][$v];
			}
		}
//		把获得的数据再存到session里面
		$_SESSION[] = $goods;
		
		$goodsss = $_SESSION;
//		p($goodsss);
//			分配变量		
		View::with('goodsss',$goodsss);
		
//		定义一个空字符串
		$yy = '';
		foreach ($goods as $k => $v) {
//			然他们相加  在赋给变量
			$yy = $yy+$v['total'];
		}
//		p($yy);
		View::with('yy',$yy);
		
//显示地址		
		$ressModels = $this->asyss();
//		p($ressModels);
		View::with('ressModels',$ressModels);
		
		View::make();
	}	
		
		
//异步总价格		
	public function moneys(){
//		获取异步提交过来的数据
		$post = Q('post.');
//		把数据转成json格式
		echo json_encode($post);
		
	}
		




//-------------------------------------处理订单表--------------------
	
//添加列表
	public function adds(){
//		p($_POST);
//		判断有没有提交
		if(IS_POST){
//			判断提交上来的数据有没有地址id
			if($_POST['rid']==null){
//				没有就提示
				View::success('请添加收货地址',U('index'));
			}
//			提交上来的地址id
			$rid = $_POST['rid'];
//			根据地址id找到那个数据
			$ressNew = $this->ressModel->where("rid={$rid}")->find();
//			然后把那个数据的收货人名 压到post提交的数据里面
			$_POST['order'] = $ressNew['rname'];
//				把收货人地址压到post提交的数据里面
			$_POST['oaddress'] = $ressNew['rrder'];
//			提交数据所选的地址id
			$_POST['ress_rid'] = $rid;
//			获得商品id
			$gids = $_POST['gids'];
//			再session里面找到那天数据
			$gidModel = $_SESSION['cart']['goods'][$gids];
//			把商品价格总计赋给提交的数据里面
			$_POST['omoneys'] = $gidModel['total'];
//			调用模型里面的方法   把模型里面return出来的列表id赋给一个变量
			if(!$oid = $this->placeModel->autos())View::error($this->placeModel->getError());
//			p($_SERVER['REQUEST_URI']);
//			exit;
//			成功提示
			View::success('提交成功',U('Payment/index',array('oid'=>$oid)));
		}
		
	}






//-----------------------------------------------处理地址------------------------------------

//获得添加的所有地址	
	private function asyss(){
//		把获得的地址数据反出去
		return $this->ressModel->orderBy('rdef','DESC')->get();
		
	}
	

//添加收货地址		
	public function address(){
//		p($_SESSION);
//		p($_POST);
//		判断有没有提交
		if(IS_POST){
//			判断提交上来的数据的地址有没有设置为默认
			if($_POST['rdef'] != null){
//				有的话就找到数据库里面被设置为默认的那条数据 把他修改成0
				$sess = $this->ressModel->where("rdef=1")->save(array('rdef'=>0));
			}
//			把提交上来的城市联动地址  从提交过来的数据里拿出来 再赋给一个变量
			$rrder1 = $_POST['rrder1'];
			$rrder2 = $_POST['rrder2'];
			$rrder3 = $_POST['rrder3'];
//			再把上面的变量写到这个数组里   组合成数组形式的变量
			$rrders = array($rrder1,$rrder2,$rrder3,);
//			再把组合好的数组根据  逗号 组合成字符串 再赋到和数据库一样的字段里面    要不如果字段不一样就添加不到数据库
			$_POST['rrder'] = implode('-', $rrders);
			
			$_POST['home_user_home_uid'] = $_SESSION['home_uid'];
//			p($_POST);
//			判断能不能通过自动验证   不能就报对应的错误
			if(!$this->ressModel->sutr()) View::error($this->ressModel->getError());
//			能通过就 提示成功
//exit;		
			View::success('地址添加成功');
		}
	}
	

	
//	删除地址
	public function del(){
//		通过外部变量  接收到要删除数据的id
		$rid = Q('get.rid',0,'intval');
//		找到要删除的那条数据并删除
		$this->ressModel->where("rid={$rid}")->delete();
//		成功提示
		View::success('删除成功');		
	}
	
	
	
	
	
}

?>	



